home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / elk / code.lua next >
Encoding:
Text File  |  2005-07-16  |  10.6 KB  |  293 lines

  1.  
  2. -- -----------------------------------------------------------------
  3. -- Init
  4. -- -----------------------------------------------------------------
  5. local function prog_init()
  6.     initModels()
  7.     sound_playMusic("music/rybky09.ogg")
  8.     local pokus = getRestartCount()
  9.  
  10.  
  11.     -- -------------------------------------------------------------
  12.     local function prog_init_room()
  13.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  14.  
  15.         room.uvod = 0
  16.         room.olosech = 0
  17.         room.poslhlaska = 0
  18.         room.dalsihlaska = random(300) + 50
  19.         room.pochlasek = 0
  20.  
  21.         return function()
  22.             if no_dialog() and isReady(small) and isReady(big) then
  23.                 if room.uvod == 0 then
  24.                     room.uvod = 1
  25.                     switch(pokus){
  26.                         [1] = function()
  27.                             pom1 = 2
  28.                         end,
  29.                         [2] = function()
  30.                             pom1 = 1
  31.                         end,
  32.                         default = function()
  33.                             pom1 = random(3)
  34.                         end,
  35.                     }
  36.                     adddel(10 + random(20))
  37.                     if pom1 >= 1 then
  38.                         addm(0, "deu-m-valka")
  39.                         addv(10, "deu-v-nepratelstvi")
  40.                     end
  41.                     if pom1 >= 2 then
  42.                         addm(random(20) + 5, "deu-m-bojovat")
  43.                         addv(3, "deu-v-losa")
  44.                     end
  45.                 elseif room.olosech == 0 and dist(small, loos) <= 2 and random(100) < 3 then
  46.                     room.olosech = 1
  47.                     switch(pokus){
  48.                         [1] = function()
  49.                             pom1 = 1
  50.                         end,
  51.                         [2] = function()
  52.                             pom1 = 2
  53.                         end,
  54.                         default = function()
  55.                             pom1 = random(3)
  56.                         end,
  57.                     }
  58.                     switch(pom1){
  59.                         [1] = function()
  60.                             addv(10, "deu-v-radsi")
  61.                             planDialogSet(random(10) + 5, "deu-l-pozalsta", 101, loos, "cinnost")
  62.                             planDialogSet(0, "deu-p-schnell", 111, papouch, "cinnost")
  63.                         end,
  64.                         [2] = function()
  65.                             addm(10, "deu-m-zvlastni")
  66.                             addv(8, "deu-v-slysel")
  67.                             planDialogSet(10, "deu-l-los", 101, loos, "cinnost")
  68.                             planSet(loos, "cinnost", 30)
  69.                         end,
  70.                     }
  71.                 end
  72.             end
  73.             if no_dialog() then
  74.                 if room.dalsihlaska > 0 then
  75.                     room.dalsihlaska = room.dalsihlaska - 1
  76.                 end
  77.                 if room.dalsihlaska == 0 then
  78.                     room.pochlasek = room.pochlasek + 1
  79.                     room.dalsihlaska = random(300) + room.pochlasek * 30
  80.                     pom1 = random(2)
  81.                     if pom1 == room.poslhlaska then
  82.                         pom1 = 2
  83.                     end
  84.                     room.poslhlaska = pom1
  85.                     switch(pom1){
  86.                         [0] = function()
  87.                             if random(2) == 0 then
  88.                                 planDialogSet(20, "deu-p-trinken"..random(2), 111, papouch, "cinnost")
  89.                             else
  90.                                 planDialogSet(20, "deu-p-los", 111, papouch, "cinnost")
  91.                                 planDialogSet(random(20) + 5, "deu-l-los"..random(2), 101, loos, "cinnost")
  92.                             end
  93.                         end,
  94.                         [1] = function()
  95.                             switch(random(6)){
  96.                                 [0] = function()
  97.                                     planDialogSet(20, "deu-p-schnell", 111, papouch, "cinnost")
  98.                                 end,
  99.                                 [1] = function()
  100.                                     planDialogSet(20, "deu-p-jawohl", 111, papouch, "cinnost")
  101.                                 end,
  102.                                 [2] = function()
  103.                                     planDialogSet(20, "deu-p-stimmt", 111, papouch, "cinnost")
  104.                                 end,
  105.                                 [3] = function()
  106.                                     planDialogSet(20, "deu-p-streng", 111, papouch, "cinnost")
  107.                                 end,
  108.                                 [4] = function()
  109.                                     planDialogSet(20, "deu-p-ordnung", 111, papouch, "cinnost")
  110.                                 end,
  111.                                 [5] = function()
  112.                                     planDialogSet(20, "deu-p-skoll", 111, papouch, "cinnost")
  113.                                 end,
  114.                             }
  115.                         end,
  116.                         [2] = function()
  117.                             switch(random(6)){
  118.                                 [0] = function()
  119.                                     planDialogSet(20, "deu-l-ja", 101, loos, "cinnost")
  120.                                 end,
  121.                                 [1] = function()
  122.                                     planDialogSet(20, "deu-l-neznaju", 101, loos, "cinnost")
  123.                                 end,
  124.                                 [2] = function()
  125.                                     planDialogSet(20, "deu-l-nesmotrel", 101, loos, "cinnost")
  126.                                 end,
  127.                                 [3] = function()
  128.                                     planDialogSet(20, "deu-l-zivjot", 101, loos, "cinnost")
  129.                                     planSet(loos, "cinnost", 30)
  130.                                 end,
  131.                                 [4] = function()
  132.                                     planDialogSet(20, "deu-l-necital", 101, loos, "cinnost")
  133.                                 end,
  134.                                 [5] = function()
  135.                                     planDialogSet(20, "deu-l-tovarisci", 101, loos, "cinnost")
  136.                                     planSet(loos, "cinnost", 30)
  137.                                 end,
  138.                             }
  139.                         end,
  140.                     }
  141.                 end
  142.             end
  143.         end
  144.     end
  145.  
  146.     -- -------------------------------------------------------------
  147.     local function prog_init_papouch()
  148.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  149.  
  150.         papouch.cinnost = 0
  151.  
  152.         return function()
  153.             switch(papouch.cinnost){
  154.                 [111] = function()
  155.                     papouch.afaze = random(2)
  156.                 end,
  157.             }
  158.  
  159.             papouch:updateAnim()
  160.         end
  161.     end
  162.  
  163.     -- -------------------------------------------------------------
  164.     local function prog_init_snecik()
  165.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  166.  
  167.         snecik.kouka = 0
  168.  
  169.         return function()
  170.             if snecik.dir ~= dir_no then
  171.                 snecik.kouka = random(100) + 10
  172.             elseif snecik.kouka > 0 then
  173.                 snecik.kouka = snecik.kouka - 1
  174.             end
  175.             if snecik.kouka > 0 then
  176.                 if snecik.afaze < 2 then
  177.                     snecik.afaze = snecik.afaze + 1
  178.                 end
  179.             elseif snecik.afaze > 0 then
  180.                 snecik.afaze = snecik.afaze - 1
  181.             end
  182.  
  183.             snecik:updateAnim()
  184.         end
  185.     end
  186.  
  187.     -- -------------------------------------------------------------
  188.     local function prog_init_loos()
  189.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  190.  
  191.         loos.cinnost = 0
  192.  
  193.         return function()
  194.             pomb1 = math.mod(game_getCycles(), 3) == 0
  195.             switch(loos.cinnost){
  196.                 [0] = function()
  197.                     loos.afaze = 3
  198.                     if random(1000) < 3 then
  199.                         loos.cinnost = 1
  200.                     end
  201.                 end,
  202.                 [1] = function()
  203.                     if pomb1 then
  204.                         if random(100) < 5 then
  205.                             loos.afaze = 3
  206.                         else
  207.                             loos.afaze = 0
  208.                         end
  209.                     end
  210.                     if random(1000) < 2 then
  211.                         loos.cinnost = 0
  212.                     end
  213.                 end,
  214.                 [10] = function()
  215.                     setanim(loos, "a3d3a4a5a6a7d2a6a5a4a3")
  216.                     loos.cinnost = 11
  217.                 end,
  218.                 [11] = function()
  219.                     goanim(loos)
  220.                     if anim == "" then
  221.                         if random(100) < 30 then
  222.                             loos.cinnost = 10
  223.                         else
  224.                             loos.cinnost = 0
  225.                         end
  226.                     end
  227.                 end,
  228.                 [20] = function()
  229.                     setanim(loos, "a3d5a4d1a5d1a6d1a7d12a6d1a5d1a4d1a3")
  230.                     loos.cinnost = 21
  231.                 end,
  232.                 [21] = function()
  233.                     goanim(loos)
  234.                     if anim == "" then
  235.                         loos.cinnost = 0
  236.                     end
  237.                 end,
  238.                 [30] = function()
  239.                     loos.cinnost = random(2) * 10 + 10
  240.                 end,
  241.                 [101] = function()
  242.                     if pomb1 then
  243.                         pom1 = random(2)
  244.                         if pom1 == loos.afaze then
  245.                             pom1 = 2
  246.                         end
  247.                         if pom1 == 0 and random(100) < 8 then
  248.                             loos.afaze = 3
  249.                         else
  250.                             loos.afaze = pom1
  251.                         end
  252.                     end
  253.                 end,
  254.             }
  255.  
  256.             loos:updateAnim()
  257.         end
  258.     end
  259.  
  260.     -- --------------------
  261.     local update_table = {}
  262.     local subinit
  263.     subinit = prog_init_room()
  264.     if subinit then
  265.         table.insert(update_table, subinit)
  266.     end
  267.     subinit = prog_init_papouch()
  268.     if subinit then
  269.         table.insert(update_table, subinit)
  270.     end
  271.     subinit = prog_init_snecik()
  272.     if subinit then
  273.         table.insert(update_table, subinit)
  274.     end
  275.     subinit = prog_init_loos()
  276.     if subinit then
  277.         table.insert(update_table, subinit)
  278.     end
  279.     return update_table
  280. end
  281. local update_table = prog_init()
  282.  
  283.  
  284. -- -----------------------------------------------------------------
  285. -- Update
  286. -- -----------------------------------------------------------------
  287. function prog_update()
  288.     for key, subupdate in pairs(update_table) do
  289.         subupdate()
  290.     end
  291. end
  292.  
  293.